wx_order_cancel_api

Brightcells %!s(int64=6) %!d(string=hace) años
padre
commit
86ab4235dd
Se han modificado 3 ficheros con 20 adiciones y 0 borrados
  1. 1 0
      api/urls.py
  2. 18 0
      pay/views.py
  3. 1 0
      utils/error/errno_utils.py

+ 1 - 0
api/urls.py

@@ -152,6 +152,7 @@ urlpatterns += [
152 152
 urlpatterns += [
153 153
     url(r'^wx/order_create$', pay_views.wx_order_create_api, name='wx_order_create_api'),  # 订单创建
154 154
     url(r'^wx/order_query$', pay_views.wx_order_query_api, name='wx_order_query_api'),  # 订单查询补单
155
+    url(r'^wx/order_cancel$', pay_views.wx_order_cancel_api, name='wx_order_cancel_api'),  # 订单取消
155 156
     url(r'^wx/order_list$', pay_views.wx_order_list_api, name='wx_order_list_api'),  # 订单列表
156 157
     url(r'^wx/order_detail$', pay_views.wx_order_detail_api, name='wx_order_detail_api'),  # 订单详情
157 158
     url(r'^wx/notify_url$', pay_views.wx_notify_url_api, name='wx_notify_url_api'),  # 支付异步通知回调地址

+ 18 - 0
pay/views.py

@@ -235,6 +235,24 @@ def wx_order_query_api(request):
235 235
 
236 236
 @logit
237 237
 @transaction.atomic
238
+def wx_order_cancel_api(request):
239
+    """ 订单取消 """
240
+    user_id = request.POST.get('user_id', '')
241
+    order_id = request.POST.get('order_id', '')
242
+
243
+    try:
244
+        order = OrderInfo.objects.select_for_update().get(order_id=order_id, status=True)
245
+    except OrderInfo.DoesNotExist:
246
+        return response(OrderStatusCode.WX_ORDER_NOT_FOUND)
247
+
248
+    if user_id not in [order.from_uid]:
249
+        return response(OrderStatusCode.NO_CANCEL_PERMISSION)
250
+
251
+    return response(200, 'Order Cancel Success', u'订单取消成功')
252
+
253
+
254
+@logit
255
+@transaction.atomic
238 256
 def wx_order_list_api(request):
239 257
     """ 订单列表 """
240 258
     user_id = request.POST.get('user_id', '')

+ 1 - 0
utils/error/errno_utils.py

@@ -113,6 +113,7 @@ class OrderStatusCode(BaseStatusCode):
113 113
     SIGN_CHECK_FAIL = StatusCodeField(404010, 'Sign Check Fail', description=u'签名校验失败')
114 114
     FEE_CHECK_FAIL = StatusCodeField(404011, 'FEE Check Fail', description=u'金额校验失败')
115 115
     NO_DETAIL_PERMISSION = StatusCodeField(404015, 'No Detail Permission', description=u'无详情权限')
116
+    NO_CANCEL_PERMISSION = StatusCodeField(404016, 'No Cancel Permission', description=u'无取消权限')
116 117
     WX_ORDER_PAID_ALREADY_EXISTS = StatusCodeField(404020, 'WX Order Paid Already Exists', description=u'照片已购买')
117 118
 
118 119